package basic01.method;

/**
 * @author Mark
 * @version 1.0
 * @date 2020/5/16 16:33
 * @description 方法
 */
public class MethodTest {
    public static void main(String[] args) {
        System.out.println(add(1, 2));
        System.out.println(isMax(1, 2));
        add(1, 2, 3, 4);
        System.out.println(funDiGui(3));
    }

    /**
     * 程序中调用(原子性)
     *
     * @param a 形参a
     * @param b 形参b
     * @return a+b(int)
     */
    private static int add(int a, int b) {
        return a + b;
    }

    /**
     * 程序中调用(原子性)
     *
     * @param a 形参a
     * @param b 形参b
     * @return a+b(int)
     */
    private static int add(int a, int b, int c) {
        return a + b;
    }

    /**
     * 比较两个数值大小
     *
     * @param a
     * @param b
     * @return
     */
    private static int isMax(int a, int b) {

        int result = 0;
        if (a == b) {
            System.out.println("a=b");
            return 0;
        }

        if (a > b) {
            result = a;
        } else {
            result = b;
        }
        return result;
    }

    /**
     * 可变参数
     *
     * @param a int可变参数
     */
    private static void add(int... a) {
        System.out.println(a[0]);
    }

    /**
     * 递归头/递归体
     * 边界值
     * 前阶段
     * 返回阶段
     */
    private static int funDiGui(int a) {
        if (a == 1) {
            return 1;
        } else {
            return a * funDiGui(a - 1);
        }
    }

    private static int addTest(int a, int b) {
        return a + b;
    }

    private static int subTest(int a, int b) {
        return a - b;
    }

    private static int mulTest(int a, int b) {
        return a * b;
    }

    private static int divTest(int a, int b) {
        return a / b;
    }
}
